const crypto = require('crypto')
export function generateRandomString(n = 16) {
  const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
  let result = ''
  for (let i = 0; i < n; i++) {
    // 生成一个0到chars.length-1之间的随机整数
    const randomIndex = crypto.randomInt(0, chars.length)
    result += chars[randomIndex]
  }
  return result
}

export function parseFileName(fullName) {
  // 处理空值
  if (!fullName) {
    throw new Error('fullName is empty')
  }

  // 处理点开头的文件名
  if (fullName.startsWith('.')) {
    return {
      fileName: fullName,
      suffix: '',
    }
  }
  if (fullName.endsWith('.')) {
    return {
      fileName: fullName,
      suffix: '',
    }
  }

  // 查找最后一个点号的位置
  const lastDotIndex = fullName.lastIndexOf('.')

  // 如果没有点号或者点号在第一个位置（不应该发生，因为已经处理了点开头）
  if (lastDotIndex === -1) {
    return {
      fileName: fullName,
      suffix: '',
    }
  }

  // 正常情况：分割文件名和后缀
  return {
    fileName: fullName.slice(0, lastDotIndex),
    suffix: fullName.slice(lastDotIndex + 1),
  }
}
